<?hh
/**
 * Copyright (c) 2014, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the "hack" directory of this source tree.
 *
 *
 */

/* All keywords are allowed as enum. */

enum A: int {
  abstract = 1;
  and = 1;
  array = 1;
  arraykey = 1;
  as = 1;
  attribute = 1;
  binary = 1;
  bool = 1;
  boolean = 1;
  break = 1;
  case = 1;
  catch = 1;
  category = 1;
  children = 1;
  class = 1;
  classname = 1;
  clone = 1;
  const = 1;
  continue = 1;
  coroutine = 1;
  darray = 1;
  declare = 1;
  default = 1;
  dict = 1;
  do = 1;
  double = 1;
  echo = 1;
  else = 1;
  elseif = 1;
  empty = 1;
  enddeclare = 1;
  endfor = 1;
  endforeach = 1;
  endif = 1;
  endswitch = 1;
  endwhile = 1;
  enum = 1;
  eval = 1;
  extends = 1;
  fallthrough = 1;
  false = 1;
  final = 1;
  finally = 1;
  float = 1;
  for = 1;
  foreach = 1;
  from = 1;
  global = 1;
  goto = 1;
  if = 1;
  implements = 1;
  include = 1;
  include_once = 1;
  inout = 1;
  instanceof = 1;
  insteadof = 1;
  int = 1;
  integer = 1;
  interface = 1;
  is = 1;
  isset = 1;
  keyset = 1;
  let = 1;
  list = 1;
  mixed = 1;
  namespace = 1;
  new = 1;
  newtype = 1;
  noreturn = 1;
  null = 1;
  num = 1;
  object = 1;
  or = 1;
  parent = 1;
  print = 1;
  private = 1;
  protected = 1;
  public = 1;
  real = 1;
  require = 1;
  require_once = 1;
  resource = 1;
  return = 1;
  self = 1;
  shape = 1;
  static = 1;
  string = 1;
  super = 1;
  suspend = 1;
  switch = 1;
  this = 1;
  throw = 1;
  trait = 1;
  true = 1;
  try = 1;
  type = 1;
  unset = 1;
  use = 1;
  using = 1;
  var = 1;
  varray = 1;
  vec = 1;
  void = 1;
  where = 1;
  while = 1;
  xor = 1;
  yield = 1;
}

A::and;
A::array;
A::arraykey;
A::as;
A::attribute;
A::binary;
A::bool;
A::boolean;
A::break;
A::case;
A::catch;
A::category;
A::children;
A::class;
A::classname;
A::clone;
A::const;
A::continue;
A::coroutine;
A::darray;
A::declare;
A::default;
A::dict;
A::do;
A::double;
A::echo;
A::else;
A::elseif;
A::empty;
A::enddeclare;
A::endfor;
A::endforeach;
A::endif;
A::endswitch;
A::endwhile;
A::enum;
A::eval;
A::extends;
A::fallthrough;
A::false;
A::final;
A::finally;
A::float;
A::for;
A::foreach;
A::from;
A::global;
A::goto;
A::if;
A::implements;
A::include;
A::include_once;
A::inout;
A::instanceof;
A::insteadof;
A::int;
A::integer;
A::interface;
A::is;
A::isset;
A::keyset;
A::let;
A::list;
A::mixed;
A::namespace;
A::new;
A::newtype;
A::noreturn;
A::null;
A::num;
A::object;
A::or;
A::parent;
A::print;
A::private;
A::protected;
A::public;
A::real;
A::require;
A::require_once;
A::resource;
A::return;
A::self;
A::shape;
A::static;
A::string;
A::super;
A::suspend;
A::switch;
A::this;
A::throw;
A::trait;
A::true;
A::try;
A::type;
A::unset;
A::use;
A::using;
A::var;
A::varray;
A::vec;
A::void;
A::where;
A::while;
A::xor;
A::yield;
